Primeiro de tudo, vamos abrir o RStudio. É recomendado alterar a aparência do RStudio para que ele fique mais escuro. Como vamos passar muito tempo na frente do computador, o tom escuro ajuda a manter nossos olhos menos cansados. Eu uso o tema Cobalt que mantém uma distinção boa entre os elementos. Para alterar a aparência, abra o menu: Tools > Global Options > Appearance > Editor Theme > Cobalt.
No canto superior direito, é possível ver um cubo com o nome do projeto que você está trabalhando.
Crie um novo projeto antes de mais nada. Nessa figura, o projeto se chama FOM, mas provavelmente você estará em um projeto sem nome ( Untitled ).
Clique no menu apontado pela caixa vermelha e siga os passos para criar um novo projeto. O projeto do RStudio é uma forma de manter todas as atividades do seu projeto em um único lugar. Enquanto estamos trabalhando em uma única atividade, é fácil não criar esses projetos, mas a medida que vamos utilizando o R pra outros projetos, os elementos vão se misturando e a bagunça aqui é nossa maior inimiga.
Para criar um novo projeto siga as imagens a seguir:
Clique em New Project.
Clique em New Directory.
Clique em New Project.
Dê um nome ao seu projeto e certifique-se que a pasta em que ele está inserido é uma boa pasta pra você trabalhar.
O RStudio é composto de quatro painéis, cada um contemplando diversas funções que nos ajudam a lidar com uma linguagem de programação e com a lógica da programação. Vamos explorar o que cada painel tem a nos oferecer. Vamos dar nomes aos painéis: na esquerda em cima temos o Script, direita em cima o Ambiente, esquerda em baixo o Console e na direita em baixo o painel Geral. Caso o painel de Script não esteja aparecendo pra você, você pode criar um novo Script clicando na folha em branco com um + verde no canto superior esquerdo, logo mais vamos falar sobre os scripts.
Os quatro painéis do RStudio. Em cima na esquerda o script, na direita o ambiente (aba environment), podendo ser visto também o histórico (aba History). Em baixo na esquerda o console, na direita um painel com os arquivos (files), os gráficos e mapas (Plots), os pacotes (Packages) e os arquivos de ajuda (Help).
R, diferentemente do que muitos pensam, não é um programa de computador, mas sim uma linguagem de programação. Os mais antigos vão lembrar do MS-DOS e como tudo funcionava sem uma interface gráfica bonita como temos hoje. O RStudio é uma interface gráfica pro R e o Console é onde está o R de verdade. É através do Console que conversamos diretamente com o nosso computador, pedindo pra ele realizar cálculos diretamente no seu processador, sem nessecitar de um aplicativo de calculadora, por exemplo.
Vamos tentar fazer uns cálculos e depois falamos dos outros paineis. Para isso, nós escrevemos o que nós gostaríamos que o R respondesse ao lado do sinal > e apertamos enter.
1+1## [1] 2
1 + 1## [1] 2
1+ 1## [1] 2
Aqui já começamos a aprender que o R não é sensitivo a espaços. O espaçamento entre os elementos pode ser usado ao nosso favor pra deixar o código mais inteligível. Aqui também aprendemos duas coisas sobre esse documento: caixas cinzas representam um texto que nós escrevemos no console (um comando), enquanto caixas brancas representam os outputs do R, isto é, a resposta do R às nossas perguntas.
Algumas outras possibilidades de cálculos que podemos fazer:
2+3## [1] 5
10-5## [1] 5
5-10## [1] -5
3*4## [1] 12
2021*2020## [1] 4082420
10/2## [1] 5
1992/0.1313## [1] 15171.36
Se você tentar rodar esses comandos, isto é, pedir pro R resolver determinado comando, você pode perceber que o tempo de resolução deles é bem curto. Isso acontece, pois estamos pedindo diretamente pro processador do computador resolver nossos problemas. Perceba também que os números decimais no R são descritos com pontos e não virgulas, como na língua portuguesa. Tente rodar um comando utilizando a virgula no lugar de um ponto para ver o que acontece. Aproveite pra testar diferentes contas e ir se acostumando com a forma de falar com o R.
Agora vamos dar uma passo mais longo e tentar realizar algumas operações um pouco diferentes:
1:10## [1] 1 2 3 4 5 6 7 8 9 10
Quando usamos o dois-pontos pra separar dois números, intuitivamente poderíamos pensar em uma divisão, mas o que acontece é que o R entende isso como uma sequencia de números inteiros que vai do 1 ao 10.
Mas, convenhamos, ninguém gera modelos matemáticos super complexos com esses simples comandos. No jargão da programação, se diz que R é uma linguagem orientada a objetos. Isso significa que nós podemos criar objetos que armazenem valores pra gerar cálculos ainda mais complexos. Nós podemos criar um objeto de várias maneiras distintas, sendo as duas principais:
x <- 10
y = 2Durante a nossa disciplina, vamos usar somente a primeira opção (uma setinha apontando pra esquerda). Se você está acompanhando esse tutorial juntamente com o RStudio no seu computador, deve ter percebido uma mudança no painel Ambiente.
Neste painel temos dois elementos importantes, o ambiente ou Environment e o histórico ou History. O ambiente, nos mostra quais os objetos que nós criamos, bem como algumas de suas características. Isso é extremamente importante, ainda mais quando precisarmos criar uma montanha de objetos. Sem o RStudio, esses objetos precisam ficar guardados no fundo do nosso cérebro, mas com o painel ambiente nós podemos ficar de olho nos objetos e nos preocupar com outras coisas mais importantes. O histórico mantém o registro de comandos que a gente rodou. No entanto, existe uma outra forma de manter o registro de comandos que é usando um script.
Aqui é onde podemos manter nota de tudo que acontece no R, nossos pensamentos, a sequência de trabalhos que precisamos fazer e infinitas outras possibilidades. Podemos escrever comentários no script sempre utilizando o caracter # precedendo o comentário. O sustenido, ou hashtag, indica pro R que ele não precisa considerar nada que está escrito ali. Do contrário, o R vai tentar ler e, provavelmente não vai conseguir. Tente escrever uma mensagem pro R no script, selecione a mensagem com o mouse e aperte Cntrl+R (Windows) ou Command+Return (Max), ou ainda aperte no icone Run no topo e na direita do painel do Script. Isso vai mandar o nosso código direto pro console (painel de baixo do script) e vai tentar ler nossa mensagem:
Faça um modelo de nicho de Araucaria angustifolia.## Error: <text>:1:6: unexpected symbol
## 1: Faça um
## ^
Retornou um erro… Quem sabe se pedirmos com mais educação?
R, por gentileza, poderia fazer um modelo de nicho de Araucaria angustifolia?## Error: <text>:1:2: unexpected ','
## 1: R,
## ^
Ainda não…
R, por gentileza, poderia fazer um modelo de nicho de Araucaria angustifolia? Te pago uma coca no recreio.## Error: <text>:1:2: unexpected ','
## 1: R,
## ^
Claramente, o R não entende Português. R é uma lingua como qualquer outra (alemão, espanhol, …). Lembra dos cursinhos de inglês? Então, precisamos aprender a nos comunicar com o R de maneira apropriada pra que ele nos entenda.
Vamos testar outras possibilidades. Como falamos anteriormente, o R é uma linguagem orientada a objetos. Então vamos olhar mais um pouco para os objetos. A partir de agora, você já sabe que pode escrever os comandos tanto no script quanto diretamente no console. Sinta-se a vontade para escrever eles aonde você se sentir mais confortável para falar com o R. Eu indico que você sempre escreva no script o que você quer pedir pro R, pra depois falar com ele de verdade. Isso previne que a gente se perca na comunicação. Imagine que você precisa conversar com uma pessoa em uma língua desconhecida, mas tem todo o tempo do mundo pra pesquisar as palavras corretas para usar. É isso que o script nos permite. Vejamos:
x <- 10
x## [1] 10
Aqui eu criei um objeto x contendo o valor 10 e pedi pro R me dizer o que tem dentro do objeto x. Ele me disse que dentro de x tem o valor 10. Garoto esperto.
x <- 10
x## [1] 10
x <- 5
x## [1] 5
Percebam que é possível sobrescrever valores. Antes, o valor de x era 10. Agora é 5, por que nós determinamos assim. É possível também fazer cálculos com esses objetos:
x-8## [1] -3
x+7## [1] 12
x*5## [1] 25
x*x## [1] 25
x/3## [1] 1.666667
x/x## [1] 1
y <- 10
x*y## [1] 50
x-y## [1] -5
Como vimos anteriormente, também é possível criar sequencias de números:
y <- 1:10
y## [1] 1 2 3 4 5 6 7 8 9 10
Pare um pouquinho aqui para tentar adivinhar o que aconteceria se multiplicassemos o objeto y que acabamos de criar (com valores de 1 a 10) pelo objeto x (com valor 5). Tente rodar no console do seu computador para descobrir a resposta e depois volte para falarmos do segundo elemento mais importante que temos para nos comunicar com o R, as funções.
Funções são os elementos mais importantes de uma linguagem de programação. Vamos criar uma função para entendermos melhor elas. ALERTA: aqui talvez tenhamos um excesso de nomes novos para aprender, mas não se preocupe com isso agora, com o tempo esses nomes ficarão gravados.
Vamos começar delimitando o nome da nossa função. Depois dizemos que aquele nome vai ser referente a uma função com um único argumento chamado x. Argumentos são os elementos de uma função. Não se preocupe com isso agora, com o tempo esses termos ficarão mais claros. Essa proposta da linha de cima se escreve assim:
tabuada <- function(x){}Funções são sempre sucedidas de parênteses, podendo conter algo dentro dos parênteses ou não. As chaves determinam o que a nossa função vai fazer. Por enquanto, nossa função tabuada está vazia. Para calcular a tabuada podemos fazer o seguinte:
tabuada <- function(x){
y <- 1:10
x*y
}Agora que temos uma função chamada tabuada no nosso ambiente, podemos calcular a tabuada de qualquer número:
tabuada(7)## [1] 7 14 21 28 35 42 49 56 63 70
Muito útil.
O R já possui diversas funções importantes instaladas. E nós podemos acessá-las através do comando:
?baseEsse comando vai abrir o menu de ajuda do pacote base no painel geral. Depois, basta clicarmos no link Index para sermos direcionados ao menu de funções do pacote base. Como vocês podem ver, são muitas, algumas das quais nunca vamos usar. Uma função que usaremos bastante é a função library. Ela sempre está presente no início dos scripts, pois ela é utilizada para abrir pacotes de funções (também conhecidas), isto é, conjuntos de funções que outros pesquisadores e programadores fornecem. Vamos baixar alguns pacotes pra entender melhor. Para baixar um pacote, basta clicar na aba Packages no painel geral e clicar em Install. Uma nova janela se abrirá, aonde é possível buscar um pacote pelo nome. Vamos buscar pelo pacote sdm. Ao clicar em Install, você irá instalar o pacote, mas, para poder usufruir das funções dele, é necessário carregar o pacote através da função
library. Vamos tentar rodar uma função antes e depois do pacote ser carregado.
sdm()## Error in sdm(): could not find function "sdm"
library(sdm)## Loading required package: sp
## sdm 1.0-89 (2020-04-22)
sdm()## Error in (function (classes, fdef, mtable) : unable to find an inherited method for function 'sdm' for signature '"missing", "missing", "missing"'
Perceba que o erro gerado antes de abrirmos o pacote foi que o R não reconheceu a função. O próximo erro, após carregar o pacote, foi que ele não conseguiu rodar a função por outros motivos (independente de quais sejam, pois estamos aqui para perceber que agora essa função está disponível pra nós).
Nesse momento, conseguimos compreender a interface do RStudio que nos possibilita um pouco mais de familiaridade. R é uma lingua como qualquer outra, quanto mais a gente treina, mais rápido ficaremos proficientes. Se não treinamos, esquecemos.
usdm, raster, rgdal e ecospat.c, paste, matrix e list podem te ajudar. Lembre de buscar por elas usando o ?. O documento de ajuda da aba Help geralmente traz quais os argumentos necessários para a função, bem como exemplos!